package com.chagee.channel.api.bo.lark;

import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.util.List;

/**
 * 评论详情实体
 *
 * @author kunpeng.zhang
 * @date 2024/12/06
 */
@Data
@Accessors(chain = true)
public class ApprovalCommentBO implements Serializable {

	/**
	 * 评论ID
	 */
	@ApiModelProperty("评论ID")
	private String id;

	/**
	 * 评论内容
	 */
	@ApiModelProperty("评论内容")
	private String content;

	/**
	 * 评论文件
	 */
	@ApiModelProperty("评论文件")
	private List<ApprovalInstanceDetailBO.FileVO> files;

	/**
	 * 评论创建时间
	 */
	@ApiModelProperty("评论创建时间")
	private String createTime;

	/**
	 * 评论更新时间
	 */
	@ApiModelProperty("评论更新时间")
	private String updateTime;

	/**
	 * 是否删除，0:未删除，1:已删除
	 */
	@ApiModelProperty("是否删除，0:未删除，1:已删除")
	private Integer isDelete;

	/**
	 * 评论的回复
	 */
	@ApiModelProperty("评论的回复")
	private List<CommentReplyVO> replies;

	/**
	 * 评论中艾特人信息
	 */
	@ApiModelProperty("评论中艾特人信息")
	private List<AtInfoListVO> atInfoList;

	/**
	 * 评论创建人
	 */
	@ApiModelProperty("评论创建人")
	private String commentator;

	/**
	 * 附加字段
	 */
	@ApiModelProperty("附加字段")
	private String extra;

	/**
	 * 评论回复实体
	 */
	@Data
	@Accessors(chain = true)
	public static class CommentReplyVO implements Serializable {
		/**
		 * 评论ID
		 */
		@ApiModelProperty("评论ID")
		private String id;

		/**
		 * 评论内容
		 */
		@ApiModelProperty("评论内容")
		private String content;

		/**
		 * 评论文件
		 */
		@ApiModelProperty("评论文件")
		private List<ApprovalInstanceDetailBO.FileVO> files;

		/**
		 * 评论创建时间
		 */
		@ApiModelProperty("评论创建时间")
		private String createTime;

		/**
		 * 评论更新时间
		 */
		@ApiModelProperty("评论更新时间")
		private String updateTime;

		/**
		 * 是否删除，0:未删除，1:已删除
		 */
		@ApiModelProperty("是否删除，0:未删除，1:已删除")
		private Integer isDelete;

		/**
		 * 评论中艾特人信息
		 */
		@ApiModelProperty("评论中艾特人信息")
		private List<AtInfoListVO> atInfoList;

		/**
		 * 评论创建人
		 */
		@ApiModelProperty("评论创建人")
		private String commentator;

		/**
		 * 附加字段
		 */
		@ApiModelProperty("附加字段")
		private String extra;
	}

	/**
	 * 评论中艾特人信息实体
	 */
	@Data
	@Accessors(chain = true)
	public static class AtInfoListVO implements Serializable {
		/**
		 * 评论ID
		 */
		@ApiModelProperty("评论ID")
		private String userId;

		/**
		 * 评论ID
		 */
		@ApiModelProperty("评论ID")
		private String name;

		/**
		 * 评论ID
		 */
		@ApiModelProperty("评论ID")
		private String offset;
	}


}
